Storage modules, such as solid state drives (SSDs), typically use generalized models to determine optimized write and read patterns by hosts. When the host behavior matches these expected patterns, the best level of performance, endurance, and power consumption is exhibited by the storage module. However, hosts do not always behave in the manner that storage module vendors expect. While a host may “know” its read/write pattern in advance, there are few ways in which it can express this pattern to a storage module. Storage modules that can adapt their storage algorithms to actual rather than expected host behavior will see improved synergy with the host, resulting in better performance, endurance, and/or power consumption, as desired.
The Non-Volatile Memory Express (NVMe) specification presents an additional dimension to this quandary. In NVMe, storage modules may expose multiple independent queues to a host, allowing the host to send many operations at once to different queues of a single storage module. Rather than a single pipeline of requests which may be optimized, each thread in a host may potentially send out its own command sequences to different queues, which may not appear to match the patterns expected (and optimized for) by the storage module.
In an attempt to improve the host to storage module synergy, NVMe and Advanced Host Controller Interface (AHCI) specifications include Data Set Management (DSM) commands and parameters which allows a host to hint to the storage module that various logical block address (LBA) ranges that are going to be used in a certain way. The storage module may then identify specific requests by their LBA ranges and optimize accordingly. The issue with DSM is that its LBA-range centric nature requires additional bookkeeping by both the host and the storage module. Since hosts typically use files rather than fixed partitions for different types of requests, a “random write 50%” range may overlap and mix with a “write once” range, creating complex lists of which LBA corresponds to which hint. The overhead of managing and mapping these hints may be greater than the benefit received by using them.